Non-volatile memories are used in a wide array of applications as it has the ability to retain information in the absence of power and are used as long-term persistent storage. Examples of non-volatile memories include, but are not limited to, read only memories (“ROMs”) such as programmable ROMs (“PROMs”), erasable PROMs (“EPROMs”), and electrically erasable PROMs (“EEPROMs”). Another example of a non-volatile memory is ultraviolet-erase (“UV-erase”) PROMs. The programming of some non-volatile memories requires external circuits for writing data, which is performed after the manufacturing process of the integrated circuit chip has been completed.